Have you ever wondered whether 2,000 KB is larger than 1 MB, or how 3,000,000 Bytes compares to 5 MB? Understanding computer storage units is an important skill for every computing student, but comparing different units can sometimes be trickier than it looks!
Compete the following quiz to put your understanding of computer storage capacities to the test!
In 1915, the famous explorer Sir Ernest Shackleton set out on an Antarctic expedition aboard his ship, Endurance. Unfortunately, the ship became trapped in the ice of the Weddell Sea and was eventually crushed and sunk. For more than 100 years, the exact location of the wreck remained a mystery.
In 2022, a team of explorers and scientists launched a new expedition to the Weddell Sea with one important goal: to find the lost shipwreck of Endurance.
The Weddell Sea is one of the most challenging places on Earth. It is covered with drifting sea ice and scattered with enormous icebergs. To search for the wreck, the expedition’s captain had to carefully plan a new navigation route every day. The ship could only scan a small section of the seabed at a time, so each route had to be designed to cover as much area as possible while safely avoiding dangerous ice.
The captain used precise navigation instructions to guide the ship through the icy waters. Every turn, movement, and change of direction had to be carefully planned and followed.
Now it’s your turn to help!
In the following 32 coding challenges, you will follow a series of navigation routes, just like the captain and crew did during their search. By using programming instructions to guide the expedition through the Weddell Sea, you will explore different areas and gradually narrow down the possible location of the famous shipwreck.
Can you successfully follow all 32 navigation routes and help locate the lost Endurance?
Click on the picture below to access this activity:
Using a Autonomous Underwater Vehicle/Submarine (AUV)
To scan the seabed more than 3,000m below sea level each across a small delimited area of the Weddell Sea, the scientists and crew on board the expedition ship used a remote controlled submarine called an AUV: Autonomous Underwater Vehicle. You can find out more about the AUV used on this expedition by completing this extra Python challenge: Endurance Shipwreck Search Expedition
Long before computers existed, mathematicians were already trying to pin down the value of π using clever geometric constructions and infinite processes. One of the earliest breakthroughs came from a French mathematician named François Viète (1540–1603), who discovered one of the first known infinite product formulas in mathematics.
Viète’s work is especially remarkable because it predates calculus. Instead of using series or integrals, he built Ï€ using an infinite sequence of nested square roots derived from geometry.
The Viète Formula for π
Viète discovered that π can be expressed as an infinite product: \frac{2}{\pi} =
\frac{\sqrt{2}}{2}
\cdot
\frac{\sqrt{2 + \sqrt{2}}}{2}
\cdot
\frac{\sqrt{2 + \sqrt{2 + \sqrt{2}}}}{2}
\cdot \cdots
Rearranging this formula gives: \pi = \frac{2}{\displaystyle \prod_{n=1}^{\infty} \frac{a_n}{2}}
Where each term is built recursively:
a_1 = \sqrt{2}
a_2 = \sqrt{2+\sqrt{2}}
a_3 = \sqrt{2+\sqrt{2+\sqrt{2}}}
And so on…
a_n = \sqrt{2+\sqrt{2+\sqrt{2+\cdots}}} = \sqrt{2+ a_{n-1}} with n>1.
As the number of terms (n) increases, the product converges slowly but steadily towards Ï€. François Viète’s infinite product for estimating Ï€ can be visualised by drawing regular polygons inside a circle, where increasing the number of sides makes the polygon more closely approximate the circle and leads to a more accurate estimate of Ï€.
​
Python Challenge
Your task is to write a Python program that estimates the value of π using Viète’s infinite product. However instead of computing infinite terms, you will approximate the value of π using a fixed number of iterations.
Solution...
The solution for this challenge is available to full members! Find out how to become a member: ➤ Members' Area
Recycling correctly helps reduce waste and protects the environment. Different types of waste need to be placed in different bins, but remembering which item goes in which bin can sometimes be confusing.
In this Python challenge, you will create a simple recycling assistant that asks the user questions about an item they want to throw away and then tells them which bin it belongs in.
This challenge is ideal for beginners who want to practise:
Using variables
Getting user input
Using conditional statements (if, elif, else)
Making decisions in a program
Creating user-friendly text-based applications
The Recycling Bins
Our program will based on the following recycling scheme where each household has access to 5 bins of different colours:
Food waste, plate scrapings, mouldy food, pet food, tea bags and coffee grounds.
Brown Bin
Garden waste including grass clippings, leaves, dead flowers/plants and windfall fruit.
Black Bin
General rubbish such as crisp packets, used nappies and polystyrene.
Python Challenge
To solve this challenge, we will write a Python program that ask the user about the item they are about to throw away. If it’s a recognised item, our program will try to decide straight away in which bin the item should go to.
For instance, we know that newspapers, magazines, books, leaflets and postcards should all end up in the green bin. so we can use some Python code to identify if the the item being thrown away belong to this list of items:
item = input("What are you recycling today?").lower()
if item in ["newspaper","magazine","book","leaflet","postcard"]:
print("This " + item + " goes in the green bin.")
If this item is not in this list we can check if it belongs to other lists of recognisable items for the different recycling bins. To do so we will use elif statements:
item = input("What are you recycling today?").lower()
if item in ["newspaper","magazine","book","leaflet","postcard"]:
print("This " + item + " goes in the green bin.")
elif item in ["plastic bottle","drink carton","tetra pak","metallic can","aluminium can","glass bottle"]:
print("This " + item + " goes in the blue bin.")
elif ...
...
Your Turn…
Use the online Python IDE that you will find at the bottom of this blog post to complete the code and cater for a list of items for each of the 5 recycling bins of our recycling scheme.
Unrecognised items…
Now that you have completed the code to cater for all 5 bins, you can test it and see if gives you the right advise for different items.
You will quickly realise that using this approach it is not very practical to list every single possible item and that the program may not recognise the items the user want to throw, especially if this item is either not mentioned in the given list or is described differently.
So in this case we will get our program to ask the user a series of questions to determine what type of item they are disposing of.
For example the program could ask the following questions and use the following decision tree:
Python Code
Complete the following code online:
Extension Challenge 1
Some items should not end up in our bins but instead should be brought to the nearest recycling centre. These includes batteries, chemicals, and all forms of eWaste. Could you tweak your code to inform the user to not throw these items in any of their bins but instead bring them to their local recycling centre.
Extension Challenge 2
The above challenge is based on using selection in our code (If statements).
Your extra challenge is to use iteration (using a loop) within your code. You will tweak your code to allow the user to recycle multiple items by repeating the program until they choose to quit.
Solution...
The solution for this challenge is available to full members! Find out how to become a member: ➤ Members' Area
Nicomachus of Gerasa was an ancient Greek mathematician who lived around 60–120 AD. He is best known for his work Introduction to Arithmetic, one of the earliest surviving books on number theory.
One of the most famous results attributed to Nicomachus is a striking theorem about numbers and patterns. It shows that if you add together the cubes of the first n natural numbers, the result is exactly the same as squaring the sum of those numbers—a surprisingly elegant mathematical relationship.
In this challenge, we will write a Python program to verify Nicomachus’ theorem with any given value for n.
To do so we will first investigating one a surprising relationship between the sum of consecutive odd numbers and perfect square numbers. Effectively Nicomachus observed that:
The sum of the first n odd numbers is equal to n².
We can translate this observation into a mathematical equation:
The aim of this challenge is to create an eye-catching digital graffiti wall using HTML and CSS. By doing so we will improve our CSS skills focusing on CSS positioning, images and text formatting.
Learning Outcomes
In this tutorial, you will learn how to:
Position elements using absolute positioning
Resize images using CSS
Rotate images and text
Apply transparency effects
Import and use custom Google Fonts
Add text shadows and styling effects
Starter Code
We have started the graffiti wall using some HTML and CSS code. You will be able to edit this wall in a new window using this button:
The HTML code already contains all the images and text elements that will be placed on the wall.
We have started our CSS code to give our page a brick wall background using the following CSS code:
BODY {
background-image: url(https://www.101computing.net/wp/wp-content/uploads/brick-wall.jpg);
background-repeat: repeat;
}
What does this do?
CSS Property
Purpose
background-image
Sets the image used as the page background
background-repeat
Repeats the image to cover the page
Step 2: Positioning & Resizing Objects
We have started to position a couple elements including the peace symbol. To do so we are using absolute positioning in CSS which let us specify the exact position of our element on the page using the top and and left properties in CSS.
To resize our pictures, without stretching them, we will just specify either the width or the height of the picture in CSS. We do not include both the width and height properties as if we used both, we could end up stretching the picture. By only specifying either the width or the height, the other property will automatically adjust to keep the correct aspect ratio of the picture.
Here is the code to position and resize the peace sign on our wall:
Your turn
Use different selectors such as #arrow, #dj-artist, #astronaut and use the relevant CSS properties to reposition and resize all the images to cover your graffiti wall.
Step 3: Rotating Objects
Now that your images are in position you can also rotate them using the following CSS code:
transform: rotate(20deg);
With his code you can use a positive or a negative angle to rotate your object clockwise or anti-clockwise.
Step 4: Flipping Images
To flip an image horizontally use the following CSS code:
transform: scaleX(-1);
Step 5: Layering Images
To change the layering order of your images when they overlap, you can use the z-index property in CSS:
z-index: 2;
Step 6: Importing Google Fonts & Formatting Text
For more exciting fonts that the standard web-safe fonts (Arial, Verdana, Times New Roman, etc.), we recommend importing your selection of Google fonts.
For instance, in the example provided, our text “StreetArtist” is formatted using the Frijole font from Google Fonts.
To import it and be able to use it within your CSS code, add the following line at the top of your CSS code:
It is possible t create a shadow effect to your text which can help improve the contrast and make your text easier to read especially when a page has a background picture.
text-shadow: 2px 2px #ffffff;
CSS Summary
Here is a summary of the CSS properties this challenged focused on:
Property
Use
position:absolute
Place elements anywhere on the page
top / left
Specify the position/coordinates of an element on the page when using absolute positioning
z-index
Change the layering orders of overlapping elements
transform
Rotate or flip an element
opacity
Apply transparency to an element
font-family
Change the font of your text
font-size
Change the size of your text
color
Change the colour of your text
text-shadow
Add outline/shadow effect to your text
Solution...
The solution for this challenge is available to full members! Find out how to become a member: ➤ Members' Area
Solution...
You are viewing this solution as part of your full membership subscription!